package smecta.client.print.controller;

import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Platform;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.control.ProgressBar;
import javafx.scene.layout.VBox;
import javafx.util.Duration;
import org.springframework.boot.SpringApplication;
import smecta.client.print.SpringbootJavafxApplication;

import java.util.Timer;
import java.util.TimerTask;

public class SplashController {

    @FXML
    private VBox vbox;

    @FXML
    private ProgressBar progressBar;

    @FXML
    private Label messageLabel;
    private Timeline progressTimeline;

    private final Timer timer = new Timer();
    private double currentProgress = 0.0;


    @FXML
    public void initialize() {
        // 初始化进度条和启动动画
        initProgressBar();
        vbox.getStylesheets().add(getClass().getResource("/css/system-startup-background-image.css").toExternalForm());
    }

    @FXML
    public void destruction() {
    }

    private void initProgressBar() {
        // 模拟启动过程，每500毫秒更新一次进度条
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                Platform.runLater(() -> {
                    if (currentProgress < 0.95) {
                        currentProgress += 0.08;
                        progressBar.setProgress(currentProgress);
                    } else {
                        // 如果启动完成，可以停止定时器并进行下一步操作
                        timer.cancel();
                        // 这里可以添加启动完成后需要执行的代码
                    }
                });
            }
        }, 0, 500);
    }

    // 当启动界面关闭时调用，停止动画
    public void stop() {
        if (progressTimeline != null) {
            progressTimeline.stop();
        }
    }

    // 应用程序启动完成时调用
    public void applicationStarted() {
        progressBar.setProgress(1);
        messageLabel.setText("系统启动完成！");
        stop(); // 停止进度更新
    }
}